home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / kitchen / code.lua next >
Text File  |  2005-07-16  |  9KB  |  240 lines

  1.  
  2. -- -----------------------------------------------------------------
  3. -- Init
  4. -- -----------------------------------------------------------------
  5. local function prog_init()
  6.     initModels()
  7.     sound_playMusic("music/rybky01.ogg")
  8.     local pokus = getRestartCount()
  9.  
  10.  
  11.     -- -------------------------------------------------------------
  12.     local function prog_init_room()
  13.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  14.  
  15.         room.uvod = 0
  16.         room.zatrpocitadlo = 1000 + random(4000)
  17.         room.zavazi = 0
  18.         room.klauspocitadlo = 500 + random(1500)
  19.         room.stolecky = 0
  20.         room.prycpocitadlo = 500 + random(1500)
  21.         room.hrncisko = 0
  22.         room.kresilko = 0
  23.         room.ss = 0
  24.         room.osam = 0
  25.         local roompole = createArray(4)
  26.         if roompole[3] == 2 then
  27.             roompole[3] = 1
  28.         end
  29.         room.stoji = 0
  30.         room.uprava = 0
  31.  
  32.         return function()
  33.             if no_dialog() and isReady(small) and isReady(big) then
  34.                 if room.zatrpocitadlo > 0 then
  35.                     room.zatrpocitadlo = room.zatrpocitadlo - 1
  36.                 end
  37.                 if room.klauspocitadlo > 0 then
  38.                     room.klauspocitadlo = room.klauspocitadlo - 1
  39.                 end
  40.                 if room.prycpocitadlo > 0 then
  41.                     room.prycpocitadlo = room.prycpocitadlo - 1
  42.                 end
  43.                 if room.uvod == 0 then
  44.                     room.uvod = 1
  45.                     pom1 = random(20)
  46.                     if pokus == 1 then
  47.                         pom1 = 3
  48.                     end
  49.                     if 0 <= pom1 and pom1 <= 5 then
  50.                         addm(9 + random(35), "kuch-m-objev0")
  51.                     elseif 6 <= pom1 and pom1 <= 9 then
  52.                         addm(9 + random(35), "kuch-m-objev1")
  53.                     elseif 10 <= pom1 and pom1 <= 17 then
  54.                         addm(9 + random(42), "kuch-m-objev3")
  55.                         if random(100) > pokus * 8 or random(100) < 30 then
  56.                             addv(12, "kuch-v-varil")
  57.                             addv(7, "kuch-v-problem")
  58.                             addm(14, "kuch-m-noproblem")
  59.                             addv(5, "kuch-v-podivej")
  60.                         end
  61.                     elseif pom1 == 18 then
  62.                         addm(9 + random(35), "kuch-m-objev2")
  63.                         room.zatrpocitadlo = -1
  64.                     end
  65.                 elseif room.uvod == 1 and room.stolecky == 0 and big.pryc == 0 and random(70) == 1 then
  66.                     room.stolecky = 1
  67.                     if random(40 * pokus) < 50 then
  68.                         addv(9 + random(100), "kuch-v-stolky0")
  69.                     end
  70.                 elseif room.zatrpocitadlo == 0 then
  71.                     room.zatrpocitadlo = -1
  72.                     addm(9, "kuch-m-objev2")
  73.                 elseif room.zavazi == 0 and zavazedlo2.X == 39 and zavazedlo2.Y == 9 and random(10 * pokus) == 1 then
  74.                     room.zavazi = 1
  75.                     if pokus < 5 or random(100) < 40 then
  76.                         addv(9, "kuch-v-stolky1")
  77.                         if random(100) < 40 and room.zatrpocitadlo > -1 then
  78.                             room.zatrpocitadlo = -1
  79.                             addm(9, "kuch-m-objev2")
  80.                         end
  81.                     end
  82.                 elseif room.klauspocitadlo == 0 and big.pryc == 0 then
  83.                     room.klauspocitadlo = 2000 + random(10000)
  84.                     if pokus < 6 or random(100) < 50 then
  85.                         addv(9, "kuch-v-stolky2")
  86.                     end
  87.                 elseif room.prycpocitadlo == 0 and big.pryc == 0 then
  88.                     room.prycpocitadlo = -1
  89.                     if pokus < 10 or random(100) < 50 then
  90.                         if random(100) < 70 then
  91.                             addv(9, "kuch-v-odsud0")
  92.                             if random(100) < 30 then
  93.                                 addv(9, "kuch-v-odsud1")
  94.                             end
  95.                             if random(100) < 25 then
  96.                                 addm(9, "kuch-m-premyslim0")
  97.                             end
  98.                         else
  99.                             addv(9, "kuch-v-odsud1")
  100.                         end
  101.                         if random(100) < 90 or pokus == 1 then
  102.                             if small.dir ~= dir_no and random(100) < 50 then
  103.                                 addm(6, "kuch-m-premyslim2")
  104.                             elseif random(100) < 45 then
  105.                                 addm(9, "kuch-m-premyslim0")
  106.                             else
  107.                                 addm(16, "kuch-m-premyslim1")
  108.                             end
  109.                         end
  110.                     end
  111.                 elseif room.hrncisko == 0 and dist(spindira, small) < 2 and random(100) < 10 then
  112.                     room.hrncisko = 1
  113.                     if pokus < 6 or random(100) < 50 then
  114.                         switch(random(3)){
  115.                             [0] = function()
  116.                                 addm(9, "kuch-m-hrnec0")
  117.                                 if random(100) < 35 then
  118.                                     addm(9, "kuch-m-hrnec2")
  119.                                 end
  120.                             end,
  121.                             [1] = function()
  122.                                 addm(9, "kuch-m-hrnec1")
  123.                             end,
  124.                             [2] = function()
  125.                                 addm(9, "kuch-m-hrnec2")
  126.                             end,
  127.                         }
  128.                     end
  129.                 elseif room.kresilko == 0 and dist(kreslak, big) < 4 and (random(100) < 50 or roompole[1] == 0) then
  130.                     room.kresilko = 1
  131.                     addv(9, "kuch-v-kreslo0")
  132.                     if random(100) < 70 then
  133.                         addv(16, "kuch-v-ja")
  134.                     end
  135.                     if roompole[1] == 0 or random(100) < 70 then
  136.                         if random(100) < 50 then
  137.                             addm(9, "kuch-m-kreslo0")
  138.                         else
  139.                             addv(9, "kuch-v-kreslo1")
  140.                             if random(100) < 65 then
  141.                                 addm(7, "kuch-m-kreslo2")
  142.                             end
  143.                         end
  144.                     end
  145.                     roompole[1] = 1
  146.                 elseif room.ss == 0 and dist(small, stolek) < 2 and random(100) == 1 then
  147.                     addm(4, "kuch-m-stolky")
  148.                     addv(8, "kuch-v-serie")
  149.                     addm(8, "kuch-m-pekne")
  150.                     room.ss = 1
  151.                 elseif room.osam == 0 and big.dole ~= 0 and random(100) == 1 then
  152.                     room.osam = 1
  153.                     addv(5, "kuch-v-obavam")
  154.                 elseif roompole[3] < 2 and dist(big, mecik) < 3 and random(50) == 1 then
  155.                     if roompole[3] == 0 or random(2) == 1 then
  156.                         roompole[3] = 2
  157.                         addv(5, "kuch-v-mec")
  158.                         addm(8, "kuch-m-porcovani")
  159.                         addv(7, "kuch-v-nedela")
  160.                     end
  161.                 elseif room.uprava == 0 and papir.dir ~= dir_no and random(14) == 1 then
  162.                     room.uprava = 1
  163.                     addv(7, "kuch-v-svitek"..random(2))
  164.                     if random(2) == 1 then
  165.                         addm(8, "kuch-m-recept")
  166.                     else
  167.                         addm(8, "kuch-m-kuchari")
  168.                     end
  169.                 elseif room.stoji > 1000 + 2000 * roompole[2] and big.pryc == 1 then
  170.                     room.stoji = 0
  171.                     addm(16, "kuch-m-zapeklite")
  172.                     roompole[2] = roompole[2] + 1
  173.                 end
  174.             end
  175.             room.stoji = room.stoji + 1
  176.         end
  177.     end
  178.  
  179.     -- -------------------------------------------------------------
  180.     local function prog_init_big()
  181.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  182.  
  183.         big.pryc = 0
  184.         big.dole = 0
  185.  
  186.         return function()
  187.             if big.X < 32 or big.Y > 13 then
  188.                 big.pryc = 1
  189.                 room.zavazi = 1
  190.             end
  191.             if big.X > 15 and big.Y > 20 then
  192.                 big.dole = 1
  193.             else
  194.                 big.dole = 0
  195.             end
  196.             if big.dir ~= dir_no then
  197.                 room.stoji = 0
  198.             end
  199.         end
  200.     end
  201.  
  202.     -- -------------------------------------------------------------
  203.     local function prog_init_small()
  204.         return function()
  205.             if small.dir ~= dir_no then
  206.                 room.stoji = 0
  207.             end
  208.         end
  209.     end
  210.  
  211.     -- --------------------
  212.     local update_table = {}
  213.     local subinit
  214.     subinit = prog_init_room()
  215.     if subinit then
  216.         table.insert(update_table, subinit)
  217.     end
  218.     subinit = prog_init_big()
  219.     if subinit then
  220.         table.insert(update_table, subinit)
  221.     end
  222.     subinit = prog_init_small()
  223.     if subinit then
  224.         table.insert(update_table, subinit)
  225.     end
  226.     return update_table
  227. end
  228. local update_table = prog_init()
  229.  
  230.  
  231. -- -----------------------------------------------------------------
  232. -- Update
  233. -- -----------------------------------------------------------------
  234. function prog_update()
  235.     for key, subupdate in pairs(update_table) do
  236.         subupdate()
  237.     end
  238. end
  239.  
  240.